<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="Author" content="Valentin Schmidt" />
<meta name="Keywords" content="MIDI,PHP,RTTL,RTTTL,Ringtone,Class,SMF,MIDI XML,RMID,Sequencer,Ringtone Creator" />
<meta name="Description" content="PHP class for reading, modifying, writing and playing standard MIDI files. The class provides methods to generate/manipulate MIDI data and to import/export binary midi files, text  and MIDI XML." />
<meta name="Page-topic" content="PHP MIDI Class" />
<meta name="Content-language" content="EN" />
<meta name="Robots" content="INDEX,FOLLOW" />
<title>PHP MIDI CLASS</title>
<link rel="stylesheet" type="text/css" href="css/midi.css" />
</head>
<body>
<div>
<h1>PHP MIDI CLASS</h1>

<h2>Description</h2>

Class for reading, writing, analyzing, modifying, creating, downloading 
and playing (embedding) <a href="midifile.htm">standard MIDI files</a> (*.mid, *.rmi) of type 0 or 1. MIDI songs are 
internally represented as lists of tracks, where each track is a list of 
messages, and each message is a string. The message string format is 
the same as the one used by the commandline tools <a href="ftp://ftp.cs.ruu.nl/pub/MIDI/PROGRAMS/MSDOS/mf2t.zip">MF2T/T2MF</a>
created by Piet van Oostrum.<br /><br />
The class provides methods to generate and manipulate MIDI data and to import and export binary midi files (SMF, *.mid), text in the MF2T/T2MF format and <a href="http://www.recordare.com/dtds/midixml.html">MIDI XML</a>.<br />

<h2>Applications</h2>

<ul>
<li>audio toys</li>
<li>mixers</li>
<li>sequencers</li>
<li>ringtone creators</li>
<li>musical education/training</li>
<li>...</li>
</ul>

<h2><a href="documentation.htm">Documentation</a></h2>

<h2>Demos</h2>

<a href="manipulate.php">manipulate.php</a><br />
demonstrates manipulation of MIDI data (imported MIDI file) in various 
ways
<br /><br />
<a href="sequencer.php">sequencer.php</a><br />
little online sequencer, 4 drum tracks, 4 instrument tracks, 1 bar 
only, result can be saved (simple mix format: serialized post array).
<br /><br />
<a href="mid2txt.php">mid2txt.php</a><br />
demonstrates binary MIDI file to text (MF2T/T2MF format) conversion
<br /><br />
<a href="txt2mid.php">txt2mid.php</a><br />
demonstrates text (MF2T/T2MF format) to binary MIDI file conversion
<br /><br />
<a href="mid2xml.php">mid2xml.php</a><br />
demonstrates binary MIDI file to MIDI XML conversion
<br /><br />
<a href="xml2mid.php">xml2mid.php</a><br />
demonstrates MIDI XML to binary MIDI file conversion
<br /><br />
<a href="meta.php">meta.php</a><br />
shows content of all meta events in the first track of a MIDI file. These events are often used for song title, copyright informations etc. (like ID3 tags in mp3 files).
<br /><br />
<a href="duration.php">duration.php</a><br />
demonstrates how to find the duration of a MIDI file. uses a simple child class.
<br /><br />
<a href="convert.php">convert.php</a><br />
converts MIDI files of type 1 to type 0. uses a simple child class.
<br /><br />
<a href="volume.php">volume.php</a><br />
demonstrates changing the (channel) volume(s). uses a simple child class.
<br /><br />
<a href="trim.php">trim.php</a><br />
demonstrates trimming a midi file. uses a simple child class.
<br /><br />
<a href="mid2rttl.php">mid2rttl.php</a><br />
demonstrates (simple) binary MIDI file to RTTL ringtone conversion (uses the RTTL extension, see <a href="downloads/">downloads</a>).
<br /><br />
<a href="rttl2mid.php">rttl2mid.php</a><br />
demonstrates RTTL ringtone to binary MIDI file conversion (uses the RTTL extension, see <a href="downloads/">downloads</a>).
<br /><br />

<h2><a href="downloads/">Downloads</a></h2>

<h2>Related Links</h2>
<a href="http://www.midi.org/">MIDI Manufacturers Association (MMA)</a><br />
<a href="http://www.midi.org/dtds/midi_xml.shtml">MMA's MIDI XML Specifications</a><br />
<a href="http://www.recordare.com/default.asp">Recordare</a><br />
<a href="http://www.recordare.com/dtds/midixml.html">Standard MIDI File DTD: MIDI XML</a><br />
<a href="ftp://ftp.cs.ruu.nl/pub/MIDI/PROGRAMS/MSDOS/mf2t.zip">MF2T/T2MF</a><br />
<a href="http://www.midiox.com/">MIDI-OX</a><br />
<a href="http://www.beatnik.com/">Beatnik</a>

<h2>Contact</h2>
<a href="mailto:fluxus-at-freenet-dot-de" onclick="location.href='mail'+'to'+':'+'fluxus'+unescape('%40')+'freenet.de'; return false">fluxus at freenet dot de</a>
<br /><br />
</div>
</body>
</html>